"use strict";
let members = [
    { id: 1, name: "小王", role: "普通管理员", dept: "开发一部", age: 20 },
    {
        id: 2, name: "小张", role: "超级管理员", dept: "开发一部", age: 21,
        menus: [{ id: 1, path: "/home" }]
    },
    { id: 3, name: "小刘", role: "普通管理员", dept: "开发一部", age: 22 },
];
function findObject(params) {
    const res = params.filter(item => item.role === "超级管理员");
    return res;
}
function findMinAge(params) {
    //先找年龄最小值
    const minAge = Math.min.apply(null, params.map(item => item.age));
    const res = params.filter(item => item.age == minAge);
    return res;
}
function log(user) {
    console.log(user.id);
    //断言：告诉编辑器，user一定是IUser2
    const res = user.name;
    // const res2 = <IUser2>user.name
    // const res2 = (<IUser2>user).name
    if (user.name) {
        //操作对象
        // (user as IUser1).play()
        // user.show()
    }
    else {
    }
}
log({ id: 1, name: "xiaowang", show: function () { } });
log({ id: 2, role: "xiaowang", play: function (num1) { } });
function fn(callback) {
    //非空断言：检测callback是undefined的时候。后面()不会被调用
    // ?. 检测对象是否为undefined和null
    // ！判断函数调用情况
    callback();
}
fn(function () {
    console.log(123);
});
//泛型
/**
 * 定义一个函数：要求接受两个参数。参数一：日期格式。参数二：字符串
 * function format(date:Date,mat:string){}
 *
 * format(new Date(),"yyyy-MM-dd") ---> 2023-08-22
 * format(new Date(),"yyyy/MM/dd") ---> 2023/08/22
 * format(new Date(),"yyyy/MM/dd hh:mm:ss") ---> 2023/08/22 12:23:10
 *
 * http://web.woniulab.com?id=1&name=xiaowang
 * -->{id:1,name:xiaowang}
 */
